#散列的创建
#使用{}
h1={"a"=>1,"b"=>2}
h2={a:1,b:2} #键为符号
# Hash.new(未指定参数时默认nil)
h2=Hash.new("张天泽")
p h2["not_key"]

#值的获取与设定
# []
#  store fetch方法
h1.store("a",-1) #等同 h1["a"]=-1
# p h1.fetch("a") #=> -1
# p h1.fetch("z") #=> 异常,[]方法=>nil
# p h1.fetch("c","fetch") #=>第二个参数仅做返回值,不创建键与值
#p h1.fetch("c"){String.new()} #同上
#一次性获取键与值
=begin
获取键: keys each_key{}
获取值: values each_value{}
键值对: to_a each{|键,值| } each{|数组| }
=end

#散列的默认值(不存在的键的对应返回值)
#使用 Hash.new()
# Hash.new {}
h2=Hash.new { |hash,key|
    hash[key]=key.upcase
}

#是否属于散列
# h.key?(key) h.has_key?(key) h.include?(key) h.member?(key) 
# h.value?(value) h.has_value?(value) 
#散列大小
# h.size h.length =>键的数量 h.empty?
#初始化
# h.clear

#合并散列
# Hash#merge Hash#merge!===Hash#update
